An enterprise-ready platform for server virtualization and cloud computing provides many advantages for users. As one example, users benefit from having an enterprise service providing a content management system and repository. However, such solutions often have many components, such as contents in a file system, full-text index on a full-text engine, and metadata in a database system, as well as the logic and instructions for managing these resources. Where there are multiple components, it can be difficult if not impossible for them to be properly synchronized in order to guarantee data integrity.
One prior solution was to manually shut down each component to ensure that no system data would be changed during the interval when a component was shutdown. This of course causes extra downtime for the system.
It would be desirable to provide a mechanism to make components aware of the availability of other components so as to minimize downtime and to perform upgrade and restarts safely and seamlessly.
It would also be desirable to provide more elasticity in the system architecture so that capacity could be adjusted and balanced, or dynamically provisioned, with simple techniques.